The BeanTag in Struts 2 is used to instantiate a class that follows the JavaBeans specification. It can contain Param elements to set mutator methods on the class. The BeanTag supports var, id, and name attributes where the var attribute places the instantiated bean in context for use. For example, a BeanTag can instantiate a SimpleCounter class, set its "foo" property to "BAR", and display the foo property value within the tag.